package day06;

import java.util.Scanner;

/* 评委打分程序 */
/* 业务需求：有N位评委，每位评委打分，分数范围是0-100，最后去掉最高分和最低分，取平均分 */
public class CalTotalAvg1 {
    public static void main(String[] args) {
        //1.录入评委的打分，调用录入打分方法，返回打分数组
        double[] scores = inputData(6);
        //2.计算平均分，调用计算平均分方法，返回平均分
        double avg = calAvg(scores);
        //3.输出平均分的结果
        System.out.println("平均分为:"+avg);
    }

    /* 该方法用于录入N位评委的分数 */
    public static double[] inputData(int n){
        //评分数组 double[]数组用于存储评委的打分
        //因为可能有小数所以用double类型
        double[] scores = new double[n];
        //扫描评委录入的分数
        Scanner scan = new Scanner(System.in);
        for(int i=0;i<scores.length;i++){
            //输出录入第几位评委的分数
            System.out.println("请录入第"+(i+1)+"位评委的的分数:");
            //录入评委打分
            scores[i] = scan.nextDouble();
        }
        //录入评委打分
        return scores;
    }

    /* 该方法用于计算评委分数的平均分 */
    public static double calAvg(double[] scores){
        //设置总分为0
        double total = 0.0;
        //假设第1个元素为最高分
        double max = scores[0];
        //假设第1个元素为最低分
        double min = scores[0];
        for(int i=0;i<scores.length;i++){
            //累加所有评分
            total += scores[i];
            //找最高分
            if(scores[i]>max){
                max = scores[i];
            }
            //找最低分
            if(scores[i]<min){
                min = scores[i];
            }
        }
        //计算平均分---总分减掉最高分和最低分之后，再除以(评委数-2)
        double avg = (total-max-min)/(scores.length-2);
        //返回平均分
        return avg;
    }
}
